/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package comportement;

import common.Constantes;
import java.io.Serializable;
import java.util.ArrayList;
import plateau.Joueur;

/**
 * 
 * @author Arthur
 */
public class IncidentEquipSinonNiveau implements IncidentFacheux, Serializable {
    
    private String typeCarte;
    private int typeObjet;
    private int niveaux;

    public IncidentEquipSinonNiveau(String typeCarte, int niveaux) {
        this.typeCarte = typeCarte;
        this.niveaux = niveaux;
    }
    
    public IncidentEquipSinonNiveau(String typeCarte, int typeObjet, int niveaux) {
        this( typeCarte, niveaux);
        this.typeObjet = typeObjet;
    }

    public void provoquer(Joueur j) {
        
        if( typeCarte.equals(Constantes.C_CLASSE ) ) {
            if( ! j.getInventaire().getCartesClasse().isEmpty() ) {
                j.defausserInventaire(j.getInventaire().getCartesClasse());
            }
            else 
                j.upNiveau(niveaux * (-1), Boolean.TRUE);
        }
        else if( typeCarte.equals(Constantes.C_RACE ) ) {
            if( ! j.getInventaire().getCartesRace().isEmpty() ) {
                j.defausserInventaire(j.getInventaire().getCartesRace());
            }
            else 
                j.upNiveau(niveaux * (-1), Boolean.TRUE);
        }
        else if( typeCarte.equals(Constantes.C_OBJET ) ) {
            if( ! j.getInventaire().getType(typeObjet).isEmpty() ) {
                j.defausserInventaire(j.getInventaire().getType(typeObjet));
            }
            else 
                j.upNiveau(niveaux * (-1), Boolean.TRUE);
        }
    }
    
    public String getDescription() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
}
